// 引用做函数返回值
#include <cstdio>

// 不要返回局部变量的引用
int& test1(){
    // 静态变量存在全局区, 全局去上的数据在程序结束后系统释放
    static int a = 1; 
    printf("static a print: %p\n",&a);
    return a;  // 返回a的引用
}
int main(){
    int &r = test1();
    printf("%d\n",r);
    printf("reference r: %p\n",r);
    // 如果函数的返回值是引用, 函数的调用可以作为左值
    test1() = 1000;
    printf("%d\n",test1());
    // 引用的本质是个指针常量
    printf("reference r: %p\n",&r);
}